package com.pe.pgn.clubpgn.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.pe.pgn.clubpgn.dao.TipoIncidenciaPuntosDao;
import com.pe.pgn.clubpgn.dao.hibernate.GenericDaoHibernate;
import com.pe.pgn.clubpgn.domain.ClpbTipoIncidenciaPuntos;

@Repository("tipoIncidenciaPuntosDao")
public class TipoIncidenciaPuntosDaoImpl extends GenericDaoHibernate<ClpbTipoIncidenciaPuntos, Long > 
implements TipoIncidenciaPuntosDao{
	
	public TipoIncidenciaPuntosDaoImpl(){
		super(ClpbTipoIncidenciaPuntos.class);
	}

	@SuppressWarnings("unchecked")
	public List<ClpbTipoIncidenciaPuntos> obtenerTipoIncidenciaPuntos() {
		Criteria criteria = DetachedCriteria.forClass(ClpbTipoIncidenciaPuntos.class)
		.getExecutableCriteria(getSessionFactory().getCurrentSession());

		criteria.add(Restrictions.eq("stTipoIncidenciaPuntos", Boolean.TRUE));
		criteria.addOrder(Order.desc("id"));
		
		List<ClpbTipoIncidenciaPuntos> lista = criteria.list(); 
		return lista;
	}

	@SuppressWarnings("unchecked")
	public ClpbTipoIncidenciaPuntos obtenerTipoIncidenciaPuntos(Long id) {
		Criteria criteria = DetachedCriteria.forClass(ClpbTipoIncidenciaPuntos.class)
		.getExecutableCriteria(getSessionFactory().getCurrentSession());

		criteria.add(Restrictions.eq("stTipoIncidenciaPuntos", Boolean.TRUE));
		criteria.add(Restrictions.eq("id", id));
			
		List<ClpbTipoIncidenciaPuntos> lista = criteria.list();
		if(!lista.isEmpty()){
			return lista.get(0);
		}
	
		return null;	
	}
	
	
}
